﻿/*
Ajax 两级气候区联动
日期：2016-6-2
settings 参数说明
-----
url:气候区数据json文件路径
zone:默认气候区
subzone:默认亚区
nodata:无数据状态
required:必选项
------------------------------ */
(function($){
	$.fn.climatezoneSelect=function(settings){
		if(this.length<1){return;};

		// 默认值
		settings=$.extend({
			url:"../js/wetlandmanage/climatezoneselect/climatezone.js",
			zone:null,
			subzone:null,
			nodata:null,
			required:true
		},settings);

		var box_obj=this;
		var zone_obj=box_obj.find(".zone");
		var subzone_obj=box_obj.find(".subzone");
		var zone_val=settings.zone;
		var subzone_val=settings.subzone;
		var select_prehtml=(settings.required) ? "" : "<option value=''>请选择</option>";
		var subzone_json;

		// 赋值亚区函数
		var subzoneStart=function(){
			var zone_id=zone_obj.get(0).selectedIndex;
			if(!settings.required){
				zone_id--;
			};
			subzone_obj.empty().attr("disabled",true);

			if(zone_id<0||typeof(subzone_json.climatezonelist[zone_id].c)=="undefined"){
				if(settings.nodata=="none"){
					subzone_obj.css("display","none");
				}else if(settings.nodata=="hidden"){
					subzone_obj.css("visibility","hidden");
				};
				return;
			};			
		};

		var init=function(){
			// 遍历赋值气候区下拉列表
			temp_html=select_prehtml;
			$.each(subzone_json.climatezonelist,function(i,zone){
				temp_html+="<option value='"+zone.p+"'>"+zone.p+"</option>";
			});
			zone_obj.html(temp_html);

			// 若有传入气候区与亚区的值，则选中。（setTimeout为兼容IE6而设置）
			setTimeout(function(){
				if(settings.zone!=null){
					zone_obj.val(settings.zone);
					subzoneStart();
					setTimeout(function(){
						if(settings.subzone!=null){
							subzone_obj.val(settings.subzone);							
						};
					},1);
				};
			},1);

			// 选择气候区时发生事件
			zone_obj.bind("change",function(){
				subzoneStart();
			});
		};

		// 设置气候区json数据
		if(typeof(settings.url)=="string"){
			$.getJSON(settings.url,function(json){
				subzone_json=json;
				init();
			});
		}else{
			subzone_json=settings.url;
			init();
		};
	};
})(jQuery);